home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
dskut
/
newpark.zip
/
PARK.ASM
< prev
next >
Wrap
Assembly Source File
|
1986-05-03
|
14KB
|
295 lines
PAGE 66,132
;
; THIS IS THE START OF THE LOCAL DATA AND EXECUTABLE CODE
;
CODE_SEG SEGMENT
ASSUME CS:CODE_SEG
ORG 100H
BEGIN: JMP PARK
INT 20H
CYLNUM0 DW 0
CYLNUM1 DW 0
PARK:
PUSH AX
PUSH CX
PUSH DX
PUSH ES
;
; MOVE DRIVE 0 AS FAR AS POSSIBLE IN STEPS OF 100 TRACKS
;
SEEK0100: MOV AH,0CH ; SEEK
MOV AL,1 ; GOTTA HAVE A SECTOR COUNT
MOV DL,80H ; DRIVE 0
MOV DH,0 ; GOTTA HAVE A HEAD NUMBER
MOV CX,CYLNUM0 ; GET CYLINDER NUMBER
ADD CX,100 ; INCREMENT BY 100
MOV CYLNUM0,CX ; PUT IT BACK
XCHG CL,CH ; PUT LO ORDER IN CH
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
INC CL ; NOW SAY SECTOR 1
INT 13H
MOV AH,01H ; CHECK STATUS
MOV AL,1 ; GOTTA HAVE A SECTOR COUNT
MOV DL,80H ; DRIVE 0
MOV DH,0 ; GOTTA HAVE A HEAD NUMBER
MOV CX,1 ; CYL 0 SECTOR 1
INT 13H
OR AL,AL
JZ SEEK0100
MOV AX,CYLNUM0
SUB AX,100
MOV CYLNUM0,AX
;
; MOVE DRIVE 0 AS FAR AS POSSIBLE IN STEPS OF 10 TRACKS
;
SEEK010: MOV AH,0CH ; SEEK
MOV AL,1 ; GOTTA HAVE A SECTOR COUNT
MOV DL,80H ; DRIVE 0
MOV DH,0 ; GOTTA HAVE A HEAD NUMBER
MOV CX,CYLNUM0 ; GET CYLINDER NUMBER
ADD CX,10 ; INCREMENT BY 10
MOV CYLNUM0,CX ; PUT IT BACK
XCHG CL,CH ; PUT LO ORDER IN CH
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
INC CL ; NOW SAY SECTOR 1
INT 13H
MOV AH,01H ; CHECK STATUS
MOV AL,1 ; GOTTA HAVE A SECTOR COUNT
MOV DL,80H ; DRIVE 0
MOV DH,0 ; GOTTA HAVE A HEAD NUMBER
MOV CX,1 ; CYL 0 SECTOR 1
INT 13H
OR AL,AL
JZ SEEK010
MOV AX,CYLNUM0
SUB AX,10
MOV CYLNUM0,AX
;
; MOVE DRIVE 0 AS FAR AS POSSIBLE IN STEPS OF 1 TRACK
;
SEEK01: MOV AH,0CH ; SEEK
MOV AL,1 ; GOTTA HAVE A SECTOR COUNT
MOV DL,80H ; DRIVE 0
MOV DH,0 ; GOTTA HAVE A HEAD NUMBER
INC CYLNUM0 ; INCREMENT CYLINDER NUM
MOV CX,CYLNUM0 ; GET CYL NUMBER
XCHG CL,CH ; PUT LO ORDER IN CH
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
INC CL ; NOW SAY SECTOR 1
INT 13H
MOV AH,01H ; CHECK STATUS
MOV AL,1 ; GOTTA HAVE A SECTOR COUNT
MOV DL,80H ; DRIVE 0
MOV DH,0 ; GOTTA HAVE A HEAD NUMBER
MOV CX,1 ; CYL 0 SECTOR 1
INT 13H
OR AL,AL
JZ SEEK01
DEC CYLNUM0
CMP CYLNUM0,0
JE NODRIVE0
MOV AX,CYLNUM0
PUSH DS
POP ES
LEA DX,CYLDEC0
CALL DECIMAL_CONVERT
MOV AH,9
LEA DX,CYLMSG0
INT 21H
NODRIVE0:
;
; MOVE DRIVE 1 AS FAR AS POSSIBLE IN STEPS OF 100 TRACKS
;
SEEK1100: MOV AH,0CH ; SEEK
MOV AL,1 ; GOTTA HAVE A SECTOR COUNT
MOV DL,81H ; DRIVE 1
MOV DH,0 ; GOTTA HAVE A HEAD NUMBER
MOV CX,CYLNUM1 ; GET CYLINDER NUMBER
ADD CX,100 ; INCREMENT BY 100
MOV CYLNUM1,CX ; PUT IT BACK
XCHG CL,CH ; PUT LO ORDER IN CH
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
SAL CL,1 ; PUT HI IN TOP OF CL
INC CL ; NOW SAY SECTOR 1
INT 13H
MOV AH,01H ; CHECK STATUS
MOV AL,1 ; GOTTA HAVE A SECTOR COUNT
MOV DL,81H ; DRIVE 1
MOV DH,0 ; GOTTA HAVE A HEAD NUMBER
MOV CX,1 ; CYL 0 SECTOR 1
INT 13H
OR AL,AL
JZ SEEK1100
MOV AX,CYLNUM1
SUB AX,100
MOV CYLNUM1,AX
;
; MOVE DRIVE 1 AS FAR AS POSSIBLE IN STEPS OF 10 TRACKS
;
SEEK110: MOV AH,0CH ; SEEK
MOV AL,1 ; GOTTA HAVE A SECTOR COUNT
MOV DL,81H ; DRIVE 1
MOV DH,0 ; GOTTA HAVE A HEAD NUMBER
MOV CX,CYLNUM1 ; GET CYLINDER NUMBER
ADD CX,10 ; INCREMENT BY 10
MOV CYLNUM1,CX ; PUT IT BACK
XCHG CL,CH